<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
       
       // 在数组中查找2所在的所有下标
      
//   利用indexOf方法    
       var arr=[1,2,4,2,3,4,2,22,1,2,2,2,3,2];
    //     var index = -1;
    //   var arr1=[];
    //   while(~(index=arr.indexOf(2,index+1))) arr1.push(index);
    //   console.log(arr1);


// 利用forEach方法
        // var arr1=[];
        // arr.forEach(function(item,index){
        //     if(item===2) arr1.push(index);

        // });
        // console.log(arr1);

// 利用reduce方法
        // var arr1=arr.reduce(function(value,item,index){
        //     if(item===2) value.push(index);
        //     return value;
        // },[]);
        // console.log(arr1);






        // 在数组中删除相同的元素


//  利用两次for循环和splice方法
        // for(var i=0;i<arr.length;i++){
        //     for(var j=i+1;j<arr.length;j++){
        //         if(arr[i]===arr[j]){
        //             arr.splice(j,1)
        //             j--;
        //         }
        //     }
        // }
        // console.log(arr);
       
   
   
        // 利用布尔值标记进行判断方法

        // var arr1=[];
        // for(var i=0;i<arr.length;i++){
        //     var bool=false;
        //     for(var j=0; j<arr1.length;j++){
        //         if(arr[i] === arr1[j]){
        //             bool=true;
        //             break;
        //         }
               
        //     }
        //     if(!bool) arr1.push(arr[i]);
        // }
        // console.log(arr1);
//   先定义空数组，假设布尔值为假，当为真时终止循环，当布尔值为真时，将相同的数组添加到arr1中 
        
   
    xt: for (var i = 0; i < arr.length; i++) {
        for (var j = 0; j < arr1.length; j++) {
          if (arr[i] === arr1[j]) continue xt;
        }
        arr1.push(arr[i]);
      }
      console.log(arr1);
   
//    标签跳过   不符合条件的跳过标签，下一个循环
   
   
//    方法4：  
for(var i=0;i<arr.length;i++){
            if(arr1.indexOf(arr[i])<0) arr1.push(arr[i]);
        }
        console.log(arr1);
 高级点  
for(var i=0;i<arr.length;i++){
            if(!~arr1.indexOf(arr[i])) arr1.push(arr[i]);
        }
        console.log(arr1);

        判断没找到时，添加
   
   ~加1取负
   !取反
   
   
  
  
  
  
  
  
  
  
  
  </script>
</body>
</html>